package com.ddd.mill.domain.aggregate.product.entity;

import com.baomidou.mybatisplus.annotation.*;

import com.ddd.mill.domain.aggregate.constant.product.constant.ProductStatusEnum;
import com.ddd.mill.infrastructure.persistent.domain.Entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 商品
 *
 * @author qniao
 * @date 2020/11/28
 */
@Api("商品")
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qn_product")
public class Product extends Entity<Product> {

    private static final long serialVersionUID = 1L;

    /**
     * 
     */
    @ApiModelProperty("")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 商品分类id
     */
    @ApiModelProperty("商品分类id")
    private Long productTypeId;

    /**
     * 商品编号
     */
    @ApiModelProperty("商品编号")
    private String productNo;

    /**
     * 商品名称
     */
    @ApiModelProperty("商品名称")
    private String name;

    /**
     * 工厂名称
     */
    @ApiModelProperty("商品品牌")
    private String factoryName;

    /**
     * 商品货号
     */
    @ApiModelProperty("商品货号")
    private String goodsNo;

    /**
     * 单位。保存字典id
     */
    @ApiModelProperty("单位。保存字典id")
    private Long unit;

    /**
     * 缩略图
     */
    @ApiModelProperty("缩略图")
    private String litimgUrl;

    /**
     * 概要
     */
    @ApiModelProperty("概要")
    private String outline;

    /**
     * 简述
     */
    @ApiModelProperty("简述")
    private String summary;

    /**
     * 拼团说明
     */
    @ApiModelProperty("拼团说明")
    private String groupSummary;

    /**
     * 成团单数
     */
    @ApiModelProperty("成团单数")
    private Integer groupOrderNum;

    /**
     * 有效时长。单位：s
     */
    @ApiModelProperty("有效时长。单位：s")
    private Integer expireTime;

    /**
     * 状态。0：未上架，1：上架中，2：已下架
     */
    @ApiModelProperty("状态。0：未上架，1：上架中，2：已下架")
    private ProductStatusEnum status;

    /**
     * 浏览量
     */
    @ApiModelProperty("浏览量")
    private Integer viewNum;

    /**
     * 虚拟浏览量
     */
    @ApiModelProperty("虚拟浏览量")
    private Integer fakeViewNum;

    /**
     * 销量
     */
    @ApiModelProperty("销量")
    private Integer soldNum;

    /**
     * 虚拟销量
     */
    @ApiModelProperty("虚拟销量")
    private Integer fakeSoldNum;


    /**
     * 最低起订量
     */
    @ApiModelProperty("最低起订量")
    private Integer minBuyNum;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 创建者ID
     */
    @ApiModelProperty("创建者ID")
    @TableField(fill = FieldFill.INSERT)
    private Long creatorId;

    /**
     * 编辑者ID
     */
    @ApiModelProperty("编辑者ID")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long editorId;


}
